Machine Learning for Software Reuse
نویسنده
چکیده
Recent work on learning apprentice systems suggests new approaches for using interactive programming environments to promote software reuse. Methodologies for software specification and validation yield natural domains of application for explanation-based learning techniques. This paper develops a relation between data abstractions in software and explanationbased generalization problems and shows how explanation-based learning can be used to generalize program abstractions to promote their reuse. This method is applied in the design of a system called LASR (Learning Apprentice for Software Reuse) which will acquire programming knowledge by capturing and generalizing interconnections between abstract data type theories. The technical role of theories in defining learned concepts in this application suggests their more general use in representing problems in explanation-based learning.
منابع مشابه
Machine Discovery of Static Software Reuse Potential Metrics
This paper reports a study to identify static software reuse potential metrics that can be used to classify C source code into reusable and non-reusable classes. The techniques used exploit a decision tree inductive machine learning and rough sets theory. The results we obtained show that the former technique, as implemented by C4.5, produces a much more accurate set of classification rules tha...
متن کاملSoftware Engineers vs. Machine Learning Algorithms: An Empirical Study Assessing Performance and Reuse Tasks
Several papers have recently contained reports on applying machine learning (ML) to the automation of software engineering (SE) tasks, such as project management, modeling and development. However, there appear to be no approaches comparing how software engineers fare against machine-learning algorithms as applied to specific software development tasks. Such a comparison is essential to gain in...
متن کاملMachine Learning for Software Engineering: Case Studies in Software Reuse
There are many machine learning algorithms currently available. In the 21st century, the problem no longer lies in writing the learner, but in choosing which learners to run on a given data set. In this paper, we argue that the final choice of learners should not be exclusive; in fact, there are distinct advantages in running data sets through multiple learners. To illustrate our point, we perf...
متن کاملWorkplace Learning in Reuse-Oriented Software Engineering
Today, reuse-oriented software engineering covers the process of the development and evolution of software systems by reusing existing experience (i.e., products, processes, and knowledge). One of the major problems of software reuse is the lack of knowledge and skills for understanding reusable experience. This paper explains how the reuse process can be used to support individual learning on ...
متن کاملAc 2011-322: Reuse a ”software Reuse” Course
Software reuse is the use of existing software artifacts and knowledge to construct new software. Systematic reuse has always been a major goal in software engineering since it promises large gains in productivity, quality, and time-to-market reduction. One of the main reasons software reuse has not been systematically practiced is due to the lack of education: In a survey collected from 113 re...
متن کامل